Receive side scaling (RSS) is a feature in an operating system that allows network adapters that support RSS to direct packets of certain Transmission Control Protocol/Internet Protocol (TCP/IP) flow to be processed on a designated Central Processing Unit (CPU), thus increasing network processing power on computing platforms that have a plurality of processors. Further details of the TCP/IP protocol are described in the publication entitled “Transmission Control Protocol: DARPA Internet Program Protocol Specification,” prepared for the Defense Advanced Projects Research Agency (RFC 793, published September 1981). The RSS feature scales the received traffic across the plurality of processors in order to avoid limiting the receive bandwidth to the processing capabilities of a single processor.
In order to direct a packet to the appropriate CPU, a hash function is defined that takes as an input the header information included in the packet, and outputs a hash value used to identify the CPU on which the packet should be processed by a device driver and the TCP/IP stack. The hash function is run across the connection-specific information in each incoming packet header. Based on the hash value, each packet is assigned to one CPU of a plurality of CPUs for execution.